package com.ww.springboot.boot.baseTest.design.代理;

/**
 * 描述：
 *
 * @author 🧑 ‍wanwei
 * @since 2023-02-04 16:08
 */
public class Main {

    public static void main(String[] args) {
//        //自己登陆 并且玩游戏
//        Player player = new Player("张三");
//        player.login();
//        player.play();
//
//        System.out.println("--------------静态代理------------");
//
//        //代理
//        ProxyPlayer proxyPlayer = new ProxyPlayer(player);
//        proxyPlayer.login();
//        proxyPlayer.play();
//
//        System.out.println("--------------动态代理------------");
//        //反射
//        //动态代理
//        IPlayer playerProxy = (IPlayer) new DynamicProxy().proxy(player);
//        //动态产生一个代理者
//        playerProxy.login();
//        playerProxy.play();

        System.out.println("--------------cglib动态代理 不需要实现接口 ------------");
        //字节码增强
        DynamicProxyCglib dynamicProxyCglib = new DynamicProxyCglib();
        Player proyInfo = dynamicProxyCglib.getProyInfo(Player.class);
        proyInfo.login();
        proyInfo.play();
    }
}
